\documentclass[12pt, titlepage]{article}

\usepackage[UTF8]{ctex}
\usepackage{url}
\usepackage[hidelinks]{hyperref}
\usepackage{listings}
\usepackage{booktabs, siunitx}
\usepackage{makecell}
\usepackage{halloweenmath}
\usepackage{graphicx}
\usepackage{fancyhdr}
\newcommand{\tabincell}[2]{\begin{tabular}{@{}#1@{}}#2\end{tabular}}


\author{eleve11}
\title{Latex\\for coder who use \LaTeX{} to write paper}
\pagestyle{fancy}

\begin{document}
\maketitle
\tableofcontents

\newpage
\section{记录初衷}
    此文档是使用 \LaTeX 在atom上完成记录的。开始了解到
    \LaTeX 是上课时外教介绍 \LaTeX 去编写论文，开始想使用是刷知乎刷到有国外同
    鞋Gilles Castel~\cite{b}用 \LaTeX 做数学课笔记(使用vim作为编辑器)，瞬间沦陷，同时
    参考自己主要方向是往算法走，也同样需要接触让人头痛的数学公式，前面选择markdown、
    富文本编辑器做笔记都没有带来太好的体验。
    选择 \LaTeX 其中一个原因是因为\LaTeX 对笔者而言十分友好(笔者接触过HTML/XML这类的
    标记语言)，二就是在数学公式编辑上带来的体验太让我喜欢了。\\
    \indent 笔者选择vscode、atom作为 \LaTeX 编辑器则是个人爱好。当然各位也可选取其
    他编辑器，例如vim、\mbox{Sublime Text}。 同样，各位不想折腾，也可以去找已经集成
    好的软件。\\
    \indent 此文档主要目的是作为入坑和弃坑之用，任何事物都会有优点和缺点，最终也会
    成也萧何败萧何。\\
    本文主要参考了《一份不太简短的 \LaTeXe 介绍》\cite{ba}、《 \LaTeX 入门》\cite{bb}，\\
    《\LaTeXe{} for authors》\cite{bc}

\section{latex/vscode/atom}
    笔者搭建的环境是:
    \begin{enumerate}
      \item vscode + MacTeX，vscode中使用\mbox{LaTeX Workshop} 插件
      \item atom + MacTex，atom中使用的插件为latex、\mbox{latex autocomplete}、
      \mbox{pdf-view}、\mbox{latex-tree}
    \end{enumerate}
    \subsection{latex介绍及安装}
        \subsubsection{latex介绍}
                \TeX 是Donald E. Knuth编写的一个以排版文章以及数学公式为目标的计算机程
                序。
                \LaTeX 则是一个宏包，它使用一个预定义好的专业版面，可以使作者们高质量的排
                版和打印他们的作品。
        \subsubsection{latex安装}
            \begin{enumerate}
                \item linux系统: 前往\url{http://tug.org/texlive/quickinstall.html}
                有完整官方教程
                \item macos系统: 前往\url{http://tug.org/mactex/}下载, 当然也可以
                使用Homebrew下载
                \item windows系统: 前往\url{http://tug.org/texlive/windows.html}有
                完整官方教程，当然亦可以\href{https://www.baidu.com}{百度一下}
            \end{enumerate}

        \subsection{vscode介绍及安装}
            工欲善其事必先利其器，此节与第\ref{section1}节都是介绍笔者用过的，觉得适合
            个人的编辑器，各位也可以去搜寻自己的利器。
            \subsubsection{vscode介绍}
                vscode微软出品，开源大法，近年备受关注，上升很快，这一切都得益于开源
                ，vscode版本更新很快，
                聚集各路大佬开发插件只为让开发效率提高，你可以通过插件将vscode打造成
                各种语言的编辑器，
                在其中调试运行(同时微软在github上注入的活力、投入的开源力量，也正是促成微
                软收购github的关键)。\\
                \indent 在vscode中笔者使用的插件\mbox{LaTeX Workshop}进行 \LaTeX
                的编辑。280多万的下载便说明了它的实力。
            \subsubsection{vscode安装}
                vscode安装此处略过了，搜索即可下载。

            \subsubsection{LaTex Workshop的配置}
                笔者的使用了以下配置项，看官可以根据需求调整(在vscode的setting.json中)
                配置。
                \begin{enumerate}
                    \item latex-workshop.latex.recipes: \mbox{LaTeX recipe} 是
                    在构建 \LaTeX 项目时按顺序执行的命令队列，你需要定义command的name
                    以及一组tool(tool对应\textbf{latexworkshop.latex.tools}中
                    的tool)
                    \item latex-workshop.latex.tools: 对应recipe中定义的tool，
                    即编译tex用到的工具。
                    \item latex-workshop.latex.autoClean.run: 是否自动清除文件，
                    \item latex-workshop.latex.clean.fileTypes: 清除文件的类型
                \end{enumerate}

        \subsection{Atom介绍及安装} \label{section1}
            \subsubsection{atom介绍}
                atom，也被称为阿童木，是github专门为程序员推出的一个跨平台文本编辑器。界
                面简洁，同时与github可以很好地配合。也获得了大量程序员的青睐。
            \subsubsection{atom安装}
                atom安装此处略过了，搜索即可下载。
            \subsubsection{atom中的latex插件}
                相比于在vscode中LaTeX Workshop的大包大揽，atom的则是几个管家管理
                分发到自己手里的任务。\\
                在工具栏中找到
                \fbox{Packages > Setting View > Install Packages/Themes}，
                就可以查找有关latex插件进行安装。\\
                笔者安装的插件如下:
                LaTeX、\mbox{LaTeX Tree}、\mbox{LaTeX autocomplete}
                \mbox{pdf-view}
                \begin{enumerate}
                    \item[-] latex: 在atom中进行编译\LaTeX
                    \item[-] \mbox{latex autocomplete}: \LaTeX 语法补全
                    \item[-] \mbox{pdf-view}: 在atom中查看pdf文件，点击pdf文字区域
                    可以跳到相应代码区
                    \item[-] \mbox{latex-tree}: 文档结构树，清晰的显示自己的文档结构
                \end{enumerate}
                以上插件几乎零配置，直接安装使用。

\section{模板}
    当然此文档说这么多，都是为了大概了解 \LaTeX 的一些基本内容，其实选择完编辑器就差
    不多完事了，因为前人栽树后人乘凉，所以在排版文档论文的时候可以更加专注于文字，即填充内容
    因此使用 \LaTeX 排版文档时，首先可以选择以下网址查找下载自己所需的模板：
    \begin{enumerate}
        \item[-] \href{http://www.latexstudio.net/archives/category/latex-templates/thesis-template}{\LaTeX 开源小屋}
        \item[-] \href{http://www.latextemplates.com/}{\LaTeX Templates}
        \item[-] \href{https://www.overleaf.com/latex/templates}{Overleaf}
    \end{enumerate}
    后续的内容则是以便读者在使用模板时有一些基础的语法知识。

\section{进入正题}
    立即进入正题，因为前面的软件以及插件的帮助，我们可以弱化对 \TeX 编译运行过程的了解，
    专注于编辑方向，搭建文档框架，关注语法与数学公式的编辑，解决遇到的语法错误。所
    以笔者从编辑者编辑 \LaTeX 的基本需求出发，也即从基本的框架出发，随后就是```师傅'领进
    门，修行靠个人''阶段。
    \subsection{\LaTeX 基本框架} \label{section2}
        这是一个基本框架栗子(you can call it ``first program'')
        \begin{verbatim}
            \documentclass{article}
            \usepackage[UTF8]{ctex}
            \pagestyle{plain}
            \begin{document}
            hello world! 你好，世界！
            \end{document}
        \end{verbatim}
        \begin{enumerate}
            \item 第一句定义了文档的类型
            \item 第二句调用宏包，ctex宏包是为了文档中的中文能正确显示，不至于出现乱码。
            \item 第三句定义了页面样式，其他样式如表 \ref{table1}
            \item 第四句和第六句中间区域就是你所要编辑的正文区域
            \item 第五句则是为你技能包中又加入一条技能: 熟练掌握 \LaTeX 编写hello world
        \end{enumerate}
        \begin{table}
            \centering
            \caption{预定义页面样式}
            \label{table1}
            \begin{tabular}{cc}
                \toprule
                `plain' 页脚显示页码，默认设置 \\
                `headings' 页眉显示章节以及页码 \\
                `empty' 页眉页脚为空 \\
                \bottomrule
            \end{tabular}
        \end{table}
        以上就是 \LaTeX 中编辑所用到的基本框架，你不用担心命令过多所造成编辑的不便，各位可
        在所使用编辑器中使用相应的代码补全插件。
        \subsubsection{documentclass[options]\{style\}}
            我们在开头的documentclass命令，可以在中括号中定义文档的文档的操作(可省略)，如
            表 \ref{table2} 和 表 \ref{table3} 在大括号中定义文档的类型。
            \begin{table}
                \centering
                \caption{文档类/style}
                \label{table2}
                \begin{tabular}{cc}
                    \toprule
                    类别 & 说明 \\
                    \midrule
                    article & 排版演示文档、短报告、程序文档 \\
                    proc & 一个基于article的会议文集类 \\
                    minimal & 非常小的文档类，主要用来查错 \\
                    report & 多章节长报告、短篇书籍、博士论文 \\
                    book & 排版书籍 \\
                    slides & 排版幻灯片 \\
                    IEEEtran & 用来排版学术论文 \\
                    \bottomrule
	              \end{tabular}
            \end{table}
            \begin{table}
                \centering
                \caption{文档选项类/options}
                \label{table3}
                \begin{tabular}{cc}
                    \toprule
                    类别 & 说明 \\
                    \midrule
                    10pt,11pt,12pt & 设置文档中的字体大小，默认值10pt \\
                    a4paper,letterpaper & \tabincell{c}{设置纸张大小，默认值\\letterpaper，还有其他类型} \\
                    fleqn & 设置行间公式为左对齐、而不是居中对齐 \\
                    leqno & 设置行间公式的编号为左对齐、而不是右对齐 \\
                    titlepage,notitlepage & 指定是否在文档标题后另起一行 \\
                    onecolumn,twocolumn & 指定 \LaTeX 以单栏或双栏方式排版文档 \\
                    twoside,oneside & \tabincell{c}{指定文档单面或是双面打印，此选项\\作用于文档样式，并不影响打印机} \\
                    \bottomrule
	              \end{tabular}
            \end{table}
        \subsubsection{usepackage[options]\{package\}}
            \textbf{usepackage[options]{package}}：package是宏包名字，如表
            \ref{table4}，表中列出包名与简介，宏包的具体使用访问
            \url{https://ctan.org/} 搜索宏包名，获取宏包的说明文档。options是一
            组触发宏包特殊功能的关键词。 \\
            \begin{table}
                \centering
                \caption{常用宏包}
                \label{table4}
                \begin{tabular}{cc}
                    \toprule
                        \Gape[6pt]{`ctex' 用于中文排版} \\
                        \Gape[6pt]{`siunitx' 非常不错的物理单位输入的包} \\
                        \Gape[6pt]{\makecell{`makecell' 用于表项多行显示，使用
                        gape命令可以控制表项间间隔}} \\
                        \Gape[6pt]{`url' 用于url在 \LaTeX 的跳转使用} \\
                        \Gape[6pt]{\makecell{'hyperref' 可以很好的将引用、交叉
                        url、目录、索引的跳转使用，利器}} \\
                        \Gape[6pt]{`diagbox' 对表头进行斜线分割} \\
                        \Gape[6pt]{`mdframed' 类似解释或说明卡片} \\
                        \Gape[6pt]{`graphics'} 插图功能 \\
                        \Gape[6pt]{`amsmath' 最常用的排版数学公式的宏包} \\
                        \Gape[6pt]{`halloweenmath' 万圣节主题数学公式符号(个人用来
                        做表情 $\mathwitch$ )} \\
                        \Gape[6pt]{'slashed' 用来画数学斜线，类似$\notin$} \\
                    \bottomrule
                \end{tabular}
            \end{table}
            \indent 在获取宏包，进行使用时，不甚了解一个宏包，我们就需要阅读宏包，
            那么如何阅读宏包文档呢？再看一次本节标题，你便会略知一二了，抓
            住\emph{options}这个关键字，笔者在使用\emph{hyperref}宏包时，就遇到目录、
            引用等anchor出现border和color影响版面美观，就直接读manual手册，先从options
            入手，查找各个option的作用，找到hidelinks这个option可以解决此问题。这是一个
            笔者阅读宏包解决问题的小栗子。\\
            \indent 在阅读宏包时，我们应当采用自顶向下的方式，先了解宏包的作用，抓
            住options，然后去看各个命令与环境。

    \subsection{\LaTeX 用到的基本语法}
        本节小标题的排版，是由笔者在使用中总结的，起一个分层递进作用，命令与环境的使用并不是
        框在字词行段某个范围中。
        \subsubsection{命令与环境}
            在 \LaTeX 中需要用到大量的命令与环境，来让你的文档更加整洁美观。\\
            \textbf{命令}: \LaTeX 命令是大小写敏感的，有以下两种格式：
            \begin{enumerate}
                \item 以一个反斜线$\setminus$开始，命令只以字母组成，命令后面后的空格
                符、数字以及任何非字母字符都标志这命令的结束(\emph{建议}将命令独立起来，
                即在命令前后空出一个空格，即不影响美观，同时也易读，当缺少语法高亮是也能很
                好的分辨所编辑的内容)
                \item 由反斜杠与非字母字符组合
            \end{enumerate}
            \LaTeX 会忽略命令后面的空格，如果希望得到一个空格，可以再命令后面加一个{}
            和一个空格。\\
            \textbf{环境}: 为了排版专业的文本，\LaTeX 定义了不同格式的环境，更多的环境
            可在后面章节看到。格式如下：
            \begin{verbatim}
                \begin{env}
                    content
                \end{env}
            \end{verbatim}
        \subsubsection{字符与符号}
            字符应该是一切文档的基础，首先注意文档的编码请使用\textbf{UTF8}，
            在doucmentclass中options中定义。\\
            \textbf{空白距离}: 空格和制表符等空白字符在 \LaTeX 中被看作是相同的距离 \\
            \textbf{特殊字符}: \fbox{\# \$ \% \^ \& \_ \{ \} \~{} $\setminus$}
            这些都是 \LaTeX 中的保留字符，在文件输入这些字符，通常是不会有输出的，可在以上
            字符后面加上反斜线，但是反斜线前加反斜线是不可行的，\verb|\\|是换行命令，
            可以使用\verb|$\setminus$|生成反斜线 \\
            \textbf{内置字符串}: \verb|\today|、\verb|\LaTeX|、\verb|\TeX| \\
            \textbf{引号}: 在 \LaTeX 中使用两个重音符(\verb|`|)产生左引号，两个直立
            引号(\verb|'|)产生右引号 \\
            \textbf{破折号和连字号}: `\verb|-|'产生连字号(eg: daughter-in-law)、
            `\verb|--|'产生短破折号(eg: pages 4--10)、 `\verb|---|'产生长破折号
            (eg: yes---no) \\
            \textbf{波浪号}: `\verb|\~|'产生波浪号(eg: \~{}demo)、
            `\verb|\sim|'产生波浪号(eg: $\sim$demo) \\
            \textbf{度}: `\verb|\circ|'生成度符号(eg: $30^\circ$) \\
            \textbf{省略号}: `\verb|\ldots|'生成省略号(eg: \ldots) \\
        \subsubsection{词与行}
            词与行则遇到更多的是组合问题了。\\
            \textbf{断词}: `\verb|\hyphenation{word list}|' \\
            \textbf{盒子}: `\verb|\mbox{}|'保证花括号内的单词排在同一行、
            `\verb|fbox{}|'在`\verb|\mbox{}|'基础上给内容画一个框 \\
            \textbf{强调}: `\verb|\emph{}|'强调花括号内的文本 \\
            \textbf{下划线}: `\verb|\underline{}|'在花括号的内容下加下划线 \\
            \textbf{水平间距}: `\verb|\hspace{length}|'
            长度单位可选mm、cm、in、pt、em、ex，
            `\verb|\stretch{n}|'产生一个橡皮长度\\
            \textbf{行距}: `\verb|\linespreaad{factor}|' 系数factor为1.3，行距
            则为1.5倍行距，系数为1.5，行距则为双倍行距。\\
            而命令`\verb|\setlength{\baselineskip}{1.5\baselineskip}|'则是比命令\\
            `\verb|\linespreaad{factor}|'更适合排版的行距命令 \\
            \textbf{换行}: `\verb|\\|'与`\verb|\newline|'另起一行、`\verb|\\*|'
            强制断行，禁止分页、`\verb|\newpage|'另起一页 \\
            \textbf{注释}: `\verb|%|'后的该行内容，换行符以及下一行的空白字符将被忽略
        \subsubsection{块与段落}
            块与段落则会遇到更多的拼接问题了。\\
            \textbf{段落间距}: 同样可以使用`\verb|\setlength|'命令设置段落间距，\\
            `\verb|\vspace{length}|'可以增加两段之间的距离\\
            \textbf{缩进}: `\verb|\indent|' 要与后面内容空一个空格 \\
            \textbf{章节}: 以下命令将文档(文档类型为article)分成章、
            节、子节、段、字段，
                \begin{verbatim}
                \section{section name}
                  content...
                  \subsection{subsection name}
                    \subsubsection{subsubsection name}
                      \paragraph{paragraph name}
                        \subparagraph{subparagraph name}
                \end{verbatim}
                如果想把文档分成几个部分而且不影响章节编号(建议在编辑中对章节进行如上缩进
                编写，便于阅读，也可提升编写效率，至于是2字符缩进，还是4字符缩进，则依据
                喜好)，可以使用：
                \begin{verbatim}
                    \part{part name}
                \end{verbatim}
                当文档类型为book或report时可以使用更高层的：
                \begin{verbatim}
                    \chapter{chapter name}
                \end{verbatim}
                \LaTeX 在文档编译最后提取出文章的目录，
                命令：\verb|\tableofcontents| \\
            \textbf{标题}: \verb|\maketitle|命令可以生成整篇文档标题，标题的内容必须
            在此命令之前，包括\verb|\title{...},\author{...},\date{...}| \\
            \textbf{列表}: itemize是用于简单的列表环境，enumerate环境用于带序号的
            列表，description环境用于带描述的列表 \\
            \textbf{对齐}: flushleft用于左对齐，flushright用于右对齐，center用于
            文本居中 \\

    \subsection{\LaTeX 摘要}
        使用abstract环境生成文档摘要，示例代码如下(没做效果)：
        \begin{verbatim}
            \begin{abstract}
                demo for abastract
            \end{abstract}
        \end{verbatim}
    \subsection{\LaTeX 图表}
        \includegraphics[scale=0.75]{pirate.jpeg}
        \begin{enumerate}
            \item 在文档中插入图片，可以引入宏包graphics，
                  使用`\verb|\includegraphics|'命令即可插入，使用scale进行缩放，
                  或者指定高度宽度进行缩放
            \item 在文档中加入表，可以使用tabular环境。使用makecell宏处理表内换行处理，
            使用\verb|\Gape|命令处理表内间距
        \end{enumerate}
        通常，选择PNG与JPEG来显示图片PNG用来显示计算机制作的图片，PNG是无损压缩的像素图格
        式。JPEG则是有损的，用来显示照片。当然也可使用其他格式，这里就不描述了。
        大多数时候使用\verb|\includegraphics|命令是不够的，我们需要图片居中，以及图片说
        明，就可以如下使用，效果如图\ref{fig:javakotlin}
        \begin{verbatim}
          \begin{figure}[ht] % figure环境
          \centering % \centering命令后面的内容居中
          \includegraphics[scale=0.5]{javakotlin.png}
          \caption{你是选择java还是kotlin} % 图片说明
          \label{fig:javakotlin} % 引用命令
          \end{figure}
        \end{verbatim}
        \begin{figure}[ht] % figure环境
        \centering % \centering命令后面的内容居中
        \includegraphics[scale=0.5]{javakotlin.png}
        \caption{你是选择java还是kotlin} % 图片说明
        \label{fig:javakotlin} % 引用命令
        \end{figure}


    \subsection{\LaTeX 插入代码}
        使用verbatim环境即可插入代码，需要加入语法高亮则需要使用listings宏包
        \begin{verbatim}
            # verbatim环境
            def fun():
               listA = new list()
               return listA
        \end{verbatim}
        \begin{lstlisting}[language=python]
            # listings宏包下lstlisting环境
            def fun():
               listA = new list()
               return listA
        \end{lstlisting}
    \subsection{\LaTeX 数学}
        \subsubsection{公式放置}
            行内的数学公式需要数学公式放置在\verb|\(|与\verb|\)|之间(这里的反斜杠与括号
            是一体的)、两个美元符号之间、或者math环境之间
            \begin{verbatim}
                估计大学生都知道勾股定理$3^2+4^2=5^2$,
                在三角形中两边之和大于第三边\(a+b>c\)
            \end{verbatim}
            估计大学生都知道勾股定理$3^2+4^2=5^2$，在三角形中两边之和大于第三边
            \(a+b>c\) \\
            \indent 若公式太长，需要单独放置时，而不拆开段落，则可以放置在\verb|\[|与\verb|\]|
            之间，或使用displaymath环境。\\
            \begin{verbatim}
              demo demo demo demo demo demo demo demo demo
              \[\forall x \in \mathbf{R}: \qquad x^{2} \geq 0\]
              demo demo demo demo demo demo demo demo demo
            \end{verbatim}
            demo demo demo demo demo demo demo demo demo
            \[\forall x \in \mathbf{R}: \qquad x^{2} \geq 0\]
            demo demo demo demo demo demo demo demo demo \\
            需注意数学公式中每个字母都会被当做是变量名，需要写入单词时需要使用
            \verb|\textrm{...}|命令
        \subsubsection{定理、定律}
            `\verb|\newtheorem{name}[counter]{text}[section]|'可以排版`引理'，
            `定义'，`公理'等其他的类似结构。参数name用来表示定理的短关键字，参数text
            是真正的定理名，counter指定先前声明的定理的name，section参数指定章节单元
            \begin{verbatim}
                %newtheorem命令一般放在导言区
                \newtheorem{name}[counter]{text}[section]
                \begin{name}[text]
                    若有勾三股四，则有弦五
                \end{name}
            \end{verbatim}
            \begin{verbatim}
                \newtheorem{thm}{定理}
                \begin{thm}[勾股定理]
                    若有勾三股四，则有弦五
                \end{thm}
            \end{verbatim}
            \newtheorem{thm}{定理}
            \begin{thm}[勾股定理]
                若有勾三股四，则有弦五
            \end{thm}
            当然你也可以使用其他宏包来支持，如amsthm，ntheorem
    \subsection{\LaTeX 引用、脚注、参考文献}
        \subsubsection{引用}
            在quote环境中我们可以进行引文、成语及例子的引用。
            \begin{verbatim}
                demo demo demo demo demo demo demo demo demo
                \begin{quote}
                    风雨里做个大人，阳光下做个小孩
                \end{quote}
                demo demo demo demo demo demo demo demo demo
            \end{verbatim}
            引用效果如下:\\
            demo demo demo demo demo demo demo demo demo
            \begin{quote}
                风雨里做个大人，阳光下做个小孩
            \end{quote}
            demo demo demo demo demo demo demo demo demo \\
            还有有类似效果的环境有quotation和verse，quotation用于超过几段的较长引用，
            verse用于诗歌。
        \subsubsection{交叉引用}
            在\ref{section2}节中交叉引用表 \ref{table1}的代码如下:
            \begin{verbatim}
                其他样式如表 \ref{table1}
                \begin{table}
                    \centering
                    \caption{预定义页面样式}
                    \label{table1}
                    \begin{tabular}{cc}
                        \toprule
                        `plain' 页脚显示页码，默认设置 \\
                        `headings' 页眉显示章节以及页码 \\
                        `empty' 页眉页脚为空 \\
                        \bottomrule
                    \end{tabular}
                \end{table}
            \end{verbatim}
            \verb|\label{marker}|,\verb|\ref{marker}|,\verb|\pageref{marke}|,
            其中marker是使用者选择的标识符，在节、字节、表、图或定理后面输入label命令
            在使用ref或pageref命令进行引用。
        \subsubsection{脚注}
            \begin{verbatim}
                demo\footnote{这是一个脚注} for footnote
            \end{verbatim}
            上述代码可得: demo \footnote{这是一个脚注} for footnote
        \subsubsection{参考文献}
            添加参考文献可使用thebibliography环境，使用\verb|\cite|命令进行引用文献。
            下面代码对应着此文档的一篇文献的引用。
            \begin{verbatim}
            《一份不太简短的 \LaTeXe 介绍》\cite{ba}
            \begin{thebibliography}{99}
              \bibitem{ba} 中文 \TeX 学会.
              一份不太简短的 \LaTeXe 介绍 (2007)
            \end{thebibliography}
            \end{verbatim}
    \subsection{制作页眉页脚}
        使用宏包fancyhdr，可以让我们定制页眉页脚，本文档的页眉使用的是fangcyhdr宏包
        的fancy文档样式，不需要页眉页脚则\verb|\pagestyle{empty}|

\newpage
\begin{thebibliography}{99}
    \bibitem{b} Gilles Castel. https://castel.dev/post/lecture-notes-1/ (2019)
    \bibitem{ba} 中文 \TeX 学会. 一份不太简短的 \LaTeXe 介绍 (2007)
    \bibitem{bb} 刘海洋. \LaTeX 入门 (2013)
    \bibitem{bc} \LaTeX3 Project Team. \LaTeXe{} for authros (2015)
\end{thebibliography}

\end{document}
